﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            lx();
            Console.ReadKey();
        }
        static void zfx()
        {
            //            用户输入正方形边长，用* 打印出实心正方形。

            //如：用户输入5，则输出如下图形。 
            string[,] a = new string[5, 5];
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
            //for (int i = 0; i < a; i++)
            //{
            //    for (int j = 0; j < a; j++)
            //    {
            //        Console.Write("*");
            //    }
            //    Console.WriteLine();
            //}
            Console.ReadKey();
        }
        static void cfb()//99*fb 
        {
            //for (int i = 1; i <= 9; i++)
            //{
            //    for (int j =1 ; j <= i; j++)
            //    {
            //        Console.Write(i+"*"+j+"="+i*j+"\t");
            //    }
            //    Console.WriteLine();
            //}
            string[,] a = new string[9, 9];
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j <= i; j++)
                {
                    a[i, j] = ((i + 1) + "*" + (j + 1) + "=" + (i + 1) * (j + 1) + "\t");

                }

            }
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    Console.Write(a[i, j]);
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        static void kzfx()
        {
            //            用户输入正方形边长，用* 打印出空心正方形。

            //如：用户输入5，则输出如下图形。
            //*****
            //*   *
            //*   *
            //*   *
            //*****
            int[,] a = new int[5, 5];

            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    if (i == 1 && a[i, j] == i || a[i, j] == j && j == 1)
                    {
                        Console.Write(" *");
                    }
                    else if (i >= 4 || j >= 4 || i <= 0 || j <= 0)
                    {
                        Console.Write(" *");
                    }
                    else
                    {
                        Console.Write("  ");
                    }


                }
                Console.WriteLine();
            }

            Console.ReadKey();


        }
        static void lx()
        {
            //4、打印菱形
            /* *
              ***
             *****
              ***
               */
            string[,] a = new string[5, 5];
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    if (j >= 2 - i && j <= 2 + i && i <= 2)
                    {
                        a[i, j] = "*";
                    }
                    else if (i>2 && j>=2-(4-i)&&j<=2+(4-i))
                    {
                        a[i, j] = "*";
                    }
                    else
                    {
                        a[i, j] = " ";
                    }
                }
                
            }
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    Console.Write(a[i,j]);
                }
                Console.WriteLine();
            }
                    
            
        }
        static void thsjx()
        {
            //            打印杨辉三角形（要求打印10行），如下所示：（使用二维数组）
            //1
            //1    1
            //1    2    1
            //1    3    3   1
            //1    4    6   4    1
            //1    5    10  10   5   1
            int[][] a = new int[10][];
            for (int i = 0; i < a.GetLength(0); i++)
            {
                a[i] = new int[i + 1];
            }
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j <= i; j++)
                {
                    if (i == 0 || j == 0)
                    {
                        a[i][j] = 1;
                    }
                    else if (i == 1 && j == 1 || i == j)
                    {
                        a[i][j] = 1;
                    }
                    else
                    {
                        a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
                    }
                }
            }
            for (int i = 0; i < a.GetLength(0); i++)
            {
                foreach (int item in a[i])
                {
                    Console.Write(item + "  ");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        //在 Main 方法中创建一个字符串类型的数组，并存入 5 个值，然后将数组中下标是偶数的元素输出。
        static void xb()
        {
            string[] a = new string[] { "0", "1", "a", "3", "b" };

            for (int i = 0; i < a.Length; i++)
            {
                if (i % 2 == 0 )
                {
                    Console.WriteLine("下标是偶数的有{0}", a[i]);
                }

            }



        }
        //如果一个数组保存元素是有序的（从大到小），向这个数组中插入一个数，使得插入后的数组元素仍然保持有序。
        static void px()
        {
            int[] a = new int[] { 10, 9, 8, 7, 6, 5, 4, 3, 2 };
            Console.WriteLine("原数组");
            foreach (int item in a)
            {
                Console.Write(item + " ");
            }
            int[] c = new int[10] ;
            Console.WriteLine();
            Console.WriteLine("插入一个数");
            int b = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i < a.Length; i++)
            {
                c[i] = a[i];
            }
            c[9] = b;
            Array.Sort(c);
            Array.Reverse(c);
            Console.WriteLine("排序后");
            foreach (int item in c)
            {
                Console.Write(item+" ");
            }

        }
        //        一、一维
        //int[] numbers = new int[] { 1, 2, 3, 4, 5, 6 }; //不定长
        //        int[] numbers = new int[3] { 1, 2, 3 };//定长
        //        二、多维
        //int[,] numbers = new int[,] { { 1, 2, 3 }, { 1, 2, 3 } }; //不定长
        //        int[,] numbers = new int[2, 2] { { 1, 2 }, { 1, 2 } }; //定长
    }
}